package cn.wolfcode.trip.base.service;

import cn.wolfcode.trip.base.domain.Great;
import cn.wolfcode.trip.base.domain.SystemNotice;
import cn.wolfcode.trip.base.query.TravelQueryObject;
import com.github.pagehelper.PageInfo;

import java.util.List;

/**
 * 游记点赞接口
 */
public interface IGreatService {
    /**
     * 获取指定游记的点赞数
     * @param greatType
     * @param greatTypeId
     * @return
     */
    Integer queryForTotalCount(String greatType, Long greatTypeId);

    /**
     * 查询指定用户对指定文章的点赞
     * @param greatType
     * @param greatTypeId
     * @param userId
     * @return
     */
    Great selectGreatByGreatTypeIdAndUserId(String greatType, Long greatTypeId, Long userId);

    /**
     * 删除用户对游记的点赞
     * @param greatType
     * @param greatTypeId
     * @param userId
     */
    void removeGreatByGreatTypeIdAndUserId(String greatType, Long greatTypeId, Long userId);

    /**
     * 添加指定用户对指定游记的点赞
     * @param greatType
     * @param greatTypeId
     * @param userId
     */
    void saveGreatByGreatTypeIdAndUserId(String greatType, Long greatTypeId, Great entity);

    /**
     * 获取指定用户未阅读的点赞数
     * @param sponsorId
     * @return
     */
    Integer selectSponsorNumber(Long sponsorId);

    /**
     * 获取分页指定用户未阅读的点赞信息内容
     * @param qo
     * @return
     */
    PageInfo selectByAuthorId(TravelQueryObject qo);
}
